home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-08-18 | 8.1 KB | 168 lines | [TEXT/R*ch] |
- Moscow ML release history
-
- 1.00 (1 September 1994)
- * First public release, supposed to be reliable.
-
- 1.01 (2 September 1994)
- * Fixed the bewildering error message from test R021B-FL.
-
- 1.02 (6 September 1994)
- * Removed `Internal error: domPatAcc' from the function of that name in
- asynt.ml, which was reported upon elaborating
- val ref (x as (y, z)) = ref (1, 2)
- * Made the compiler reject unbalanced comments: (op *) (2,3);
- and record labels starting with 0: {02 = true};
-
- 1.03 (12 September 1994)
- * In the implementation of `use', open_in replaced with
- open_in_bin, to avoid wrong calculation of file positions
- when reporting errors.
-
- 1.10 (28 September 1994)
- * Exceptions in integer and real arithmetic operations are raised
- correctly. (Including floor.) The real arithmetic exceptions work
- under DOS, Windows, Linux, Ultrix, OSF/1, HP/UX, Sun OS.
- * The representation of top-level exceptions has been changed
- to enable SML programs to handle the exceptions raised by
- the Caml Light run-time system.
- As a consequence, the exception Interrupt can now be
- handled by SML programs. (The Caml Light name of that
- exception is sys__Break.)
- Evaluating expressions like 10 div 0 no longer causes
- Moscow ML to crash.
- * datatype X = A | B of unit; B (); now accepted.
- * Now ~100 div 10 = ~10. (Previously it was ~11!).
- * Too large integer or real constants now give rise to error reports.
- * Error reports produced by the type-checker for the
- expressions like 0 = [1,2,3] have been made more
- understandable.
- * Unbound variables are identified before type-checking. (To
- avoid strange error reports in expressions like 2*~2.)
- * As required by the Definition, inexhaustive patterns in
- valbinds at the top level are no longer reported. (For
- example, in val nil = [].)
-
- 1.20 (1 December 1994)
- * Supports separate compilation and type-safe linking, using a simple
- module system which has Standard ML's signatures and structures, but
- no functors. Includes extensible basis libraries Array, List, and
- Vector (and Graphics in the MS DOS version). Cannot create
- stand-alone executables yet.
- * Fixed the two bugs found in version 1.10:
- * Illegal string escapes, such as "\256", caused the system to crash.
- * Certain illegal infix patterns, as in fn + => (), were accepted.
-
- 1.30 (15 June 1995)
-
- * Now reports `hidden' types t in a less ambiguous manner: ?{t}
- * New type char, and character constants #"a".
- * Supports vector expressions #[7, 9, 13] and vector patterns #[x,y,z].
- * Permits quotations `a b c` and antiquotations `a ^var c`.
- * Provides a batch compiler which can generate stand-alone executables.
- * Provides a lexer generator and a parser generator (from Caml Light).
- * New runtime system with better garbage collector (from Caml Light 0.7).
- * Moscow ML has been rewritten in Moscow ML and can recompile itself,
- which simplifies installation on Unix systems.
- * Supports a large part of the new SML Standard Library, but not yet
- the new I/O primitives.
- * Fixed bugs found in version 1.20:
- * The Match exception wasn't handled properly
- * Static argumentless exception constructors in data structures at
- top-level caused evaluation to crash.
- * Now considers ctrl-Z to mean end of file when reading source programs
- with `use' and `compile', under DOS as well as Unix. This simplifies
- moving source files from DOS to Unix, and prevents ctrl-Z characters
- in source files from crashing the top-level under DOS.
-
- 1.31 (15 October 1995)
-
- * Added prettyprinter library PP (from SML/NJ library version 0.2)
- * Added installable prettyprinters
- * Now works for the Macinstosh, thanks to Doug Currie (e@flavors.com)
- * The timer functions now report garbage-collection time
- * Avoid excess flushing: output to std_out no longer flushes immediately;
- function BasicIO.say still does.
- * Make sure that std_out is flushed when (stand-alone) program terminates.
- * Standard Library: Added getOpt etc. at top-level; changed the types
- of the word shift operations; ...
- * Now accepts ctrl-L in source files.
- * Bugs fixed:
- * input_line now works properly with pipes, DOS, and Mac
- * Array2 (and mosmllib/Makefile) were wrong
- * missing -q/-quotation option in mosmlc (under Unix)
- * Added test cases for Array2, Arraysort, and Listsort
- * FileSys.chDir now changes volume under DOS
- * mosmlyac now requires the types of non-terminals to be declared
- for type safety
-
- 1.40 (1 July 1996)
-
- * Changes in compiler (many of which to reflect the 1996 revised SML):
- * New match compiler properly detects inexhaustive matches etc.
- * Better type error messages
- * Made value polymorphism default; introduced command-line options
- -valuepoly and -imptypes, and added a ref variable Meta.valuepoly
- * Added hexadecimal integer constants, word type, word special
- constants, and word printing
- * Made +, *, -, <, >, <=, >=, div, mod, and makestring overloaded
- on word and word8 also
- * Overloading defaults to type int by default
- * Made quot and rem nonfix
- * Permitted 'e' as well as 'E' in real constants
- * Added trunc, ceil, round at top-level
- * Removed sqrt, ln, exp, sin, cos, arctan, quot, rem from top-level
- * Permitted new escape sequences in char and string constants
- * Forbade rebinding and respecification (as constructors) of the
- identifiers true, false, it, nil, ::, ref
- * Made the -P unitset option case insensitive
- * Permit keywords `structure' and `signature' etc. in compilation units
- * Changes concerning SML Basis Library:
- * New structures TextIO and BinIO
- * Renamed Integer to Int, String.maxLen to String.maxSize
- * Added String.isPrefix, Substring.isPrefix, FileSys.fileSize,
- Char.{fromCString, toCString}, StringCvt.scanList, hyperbolic
- functions in Math, exnName, exnMessage, FileSys.file_id etc.,
- FileSys.{fullPath, realPath}, exception Domain
- * Changed {Int, Word, Word8}.{scan, fromString} to accept various
- combinations of prefixes: 0x, 0X, and 0w, 0wx, 0wX; and {Char,
- String}.fromString to permit new escape sequences;
- FileSys.tmpName; built-in exception Io; General.ordering to
- General.order
- * Fixed Real.fmt, Real.toString, Real.fromString on "1.E"
- * Bugs fixed:
- * mosmllex handled character set concatenation wrongly
- * Exceptions SysErr and Io didn't print properly
- * Missing check for duplicate labels in record types in signatures
-
- 1.41 (1 October 1996)
- * Better type error message for tuples.
- * New option `-P parsing' for linking mosmlyac- and mosmllex-generated
- programs.
- * Bugs fixed:
- * Overloaded type variables were incorrectly generalized at top-level.
- * mosmlyac now permits immediate tuple and record types in
- %tokens; permits function types; and correctly binds $s in semantic
- actions even inside closures.
-
- 1.42 (July 1997)
- * The linker now automatically includes all (and only) referred-to
- bytecode files. Option -i makes the linker report which files.
- Option -noautolink disables the autolinker. Option -P parsing
- has been removed.
- * Now doesn't print imperative tyvars for library functions.
- * Now accepts explicit type variable parameters in val and fun.
- * Basis Library: Added structures Array2, CommandLine, and Option.
- Added Substring.span and {Vector, CharVector, Word8Vector}.{map, mapi}.
- Renamed Old to SML90. Fixed FileSys.closeDir, Path.joinBaseExt,
- Word8.~>>. FileSys.tmpName now creates absolute pathnames, using
- POSIX tmpnam.
- * Support for writing CGI scripts (Mosmlcgi, thanks to Jonas Barklund).
- * Signature stamps now are standard MD5 checksums rather than CRC128
- * Several internal improvements to the compiler; faster compilation
- * Faster and more compact bytecode, thanks to Doug Currie
- * Bugs fixed:
- * compilation of certain patterns with irrefutable subpatterns failed
- * mosmllex-generated lexers now typesafe
- * Polyhash.hash now is more useful on ref values
- * signature stamps now unaffected by gc phenomena; hence stable
-